public class Marienkaefer {

   private final int punkte;
   private final int fluegel;
   private final int beinchen;
   private int alter;
   private final String farbe;
   private final String farbePunkte;
   private boolean tot = false;
   private final boolean maennlich;
   private boolean satt;
   private String mageninhalt;
   
   public Marienkaefer() {
       this(2, 6, 5, "rot", "schwarz", true);
   }

   public Marienkaefer(int fluegel, int beinchen, int punkte, String farbe,
           String farbePunkte, boolean maennlich) {
       this.fluegel = fluegel;
       this.beinchen = beinchen;
       this.farbe = farbe;
       this.farbePunkte = farbePunkte;
       this.maennlich = maennlich;
       this.punkte = punkte;
   }

   public int getAlter() {
       return alter;
   }

   public void setAlter(int alter) {
	   if(!(this.isTot())){
		   if(!(this.getAlter() > alter)){
		       if (alter <= 10 && alter >= 0){
		    	   this.alter = alter;
		       }
		       else{
		           throw new IllegalArgumentException(
		                   "Alter größer als 10 oder kleiner 0");
		       }
		   }
		   else{
			   throw new IllegalArgumentException(
	                   "Wie soll der Marienkäfer den bitte jünger werden?");
		   }
	   }
	   else{
		   throw new IllegalArgumentException(
                   "Er ist TOT! Wie soll da das Alter noch geändert werden?");
	   } 
   }

   public boolean isTot() {
       return tot;
   }

   public void stirb(){
       if(this.tot == false)
           this.tot = true;
       else
           throw new IllegalStateException("Marienkäfer ist schon tot!");
   }

   public String getMageninhalt() {
       return mageninhalt;
   }

   public void setMageninhalt(String mageninhalt) {
	   if(!this.isTot()){
		   this.mageninhalt = mageninhalt;
	   }
       
   }

   public boolean isSatt() {
       return satt;
   }

   public void setSatt(boolean satt) {
	   if(!this.isTot()){
		   this.satt = satt;
	   }
   }
 
   public int getPunkte() {
       return punkte;
   }

   public int getFluegel() {
       return fluegel;
   }

   public int getBeinchen() {
       return beinchen;
   }

   public String getFarbe() {
       return farbe;
   }

   public String getFarbePunkte() {
       return farbePunkte;
   }

   public boolean isMaennlich() {
       return maennlich;
   }
   
   public String getGeschlecht(){
	   if(isMaennlich()){
		   return "Männlich";
	   }
	   else{
		   return "Weiblich";
	   }
   }

   public void setTot(boolean tot) {
       this.tot = tot;
   }
   
   
   public boolean sex(Marienkaefer otherMarienkaefer){
	   
	   if(otherMarienkaefer.isMaennlich() != this.isMaennlich() && !this.isTot() && !otherMarienkaefer.isTot()){
		   return true;
	   }
	   else{
		   return false;
	   }
   }
   
   
   
   
   
}
